Elasticsearch、Fluentd与Kibana:开源的日志搜索与可视化方案 |
您所在的位置:网站首页 › apt-get search › Elasticsearch、Fluentd与Kibana:开源的日志搜索与可视化方案 |
Elasticsearch、Fluentd与Kibana:开源的日志搜索与可视化方案
前言
Elasticsearch、Fluentd与Kibana的组合(EFK)可以进行日志数据的采集、索引、搜索以及可视化。该组合是商业软件Splunk的替代:Splunk在一开始用的时候也是免费的,但如果数据多了则需要收费。 本文介绍如何用该组合构建你的日志解决方案。 前提条件 安装了Ubuntu 14.04的云主机在该主机上具有sudo权限的用户 Elasticsearch的安装配置 安装JavaElasticsearch需要Java,所以先安装Java。 sudo apt-get update sudo apt-get install openjdk-7-jre-headless --yes检查一下Java是否成功安装了: java -version输出应该是这个样子: java version "1.7.0_55" OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1) OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode) 获取Elasticsearch下一步,下载Elasticsearch的deb安装包,安装之。 sudo wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.2.deb sudo dpkg -i elasticsearch-1.2.2.deb Elasticsearch安全加固到1.2版本为止,Elasticsearch的动态脚本功能是默认开启的。因为本文将把Kibana仪表盘设置为从公网可以访问,所以为了安全起见最好关闭这个功能。进入/etc/elasticsearch/elasticsearch.yml文件,在末尾加入如下一行内容: script.disable_dynamic: true 启动Elasticsearch运行如下命令运行Elasticsearch: sudo service elasticsearch start Kibana的安装配置 获取Kibana进入你的用户主目录: cd ~输入如下命令以下载Kibana: curl -L https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz | tar xzf - sudo cp -r kibana-3.1.0 /usr/share/ 配置Kibana我们需要Kibana使用80端口与Elasticsearch进行通讯,而不是默认的9200端口,因此我们需要更改Kibana的配置文件config.js。 用编辑器打开/usr/share/kibana-3.1.0/config.js,找到下面这行: elasticsearch: "http://"+window.location.hostname+":9200",把它替换成下面这行: elasticsearch: "http://"+window.location.hostname+":80", 安装配置Nginx(代理服务器)我们使用Nginx作为代理服务器,让经过身份认证的用户可以从公网访问Kibana的仪表盘。 首先,安装Nginx: sudo apt-get install nginx --yesKibana自带的nginx.conf写得已经比较好,我们只需要做一点点修改即可。 首先,下载安装配置文件: wget https://assets.digitalocean.com/articles/fluentd/nginx.conf sudo cp nginx.conf /etc/nginx/sites-available/default注:该配置文件来源于这个Github仓库。 然后,在编辑器中打开/etc/nginx/sites-available/default,进行如下修改(主要是server_name、access_log、location三部分): # # 针对Elasticsearch + Kibana的Nginx代理配置 # # 此处将为仪表盘设置密码保护。 # 你也可以考虑为所有路径设置密码。 # # 浏览器在首次触发访问该路径的ajax请求时, # 会弹出用户名/密码的输入框。 # # 如果你使用本功能,请将config.js配置为 http://FQDN:80/ # 取代原来的 http://FQDN:9200 # server { listen *:80 ; server_name localhost; access_log /var/log/nginx/kibana.log; location / { root /usr/share/kibana-3.1.0; index index.html index.htm; }最后,重启nginx: $ sudo service nginx restart现在,在浏览器里打开服务器的IP地址或域名,就应该能看到Kibana的仪表盘了: 最后是Fluentd的安装。我们将使用Fluetd的软件包版本td-agent,该软件包由Treasure Data维护。 从td-agent软件包安装Fluentd使用如下命令安装Fluentd: wget http://packages.treasuredata.com/2/ubuntu/trusty/pool/contrib/t/td-agent/td-agent_2.0.4-0_amd64.deb sudo dpkg -i td-agent_2.0.4-0_amd64.deb 安装插件我们需要安装如下几个插件: out_elasticsearch:该插件将Fluentd的数据流导给Elasticsearch。 outrecordreformer:该插件可以将数据处理成更多格式。输入以下命令安装插件(第一个apt-get用于安装out_elasticsearch,这会需要服务器上安装过make和libcurl): sudo apt-get install make libcurl4-gnutls-dev --yes sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-record-reformer然后,配置Fluentd以监听syslog并将其发送给Elasticsearch。用编辑器打开/etc/td-agent/td-agent.conf,在文件开头处添加如下内容: type syslog port 5140 tag system type record_reformer tag elasticsearch facility ${tag_parts[1]} severity ${tag_parts[2]} type copy type stdout type elasticsearch logstash_format true flush_interval 5s #debug 启动Fluentd输入如下命令启动Fluentd: sudo service td-agent start 将rsyslog流量转发给FluentdUbuntu 14.04自带了rsyslogd。我们需要对它做一些配置,以将syslog事件转发到Fluentd监听的端口(本文使用了5140端口)。 用编辑器打开/etc/rsyslog.conf(需要sudo权限),在文件首部添加如下内容: *.* @127.0.0.1:5140保存退出,重启rsyslogd: sudo service rsyslog restart 自定义Kibana仪表盘Kibana默认的仪表盘只显示了最通用的内容,所以可以考虑做一下自定义。以下展示两种方法。 方法1:使用模板(Template)Fluentd团队提供了另一个Kibana配置文件,如果使用模板进行自定义的话,那么这个配置文件会比Kibana的默认配置好用。运行如下命令以获取该配置文件: wget -O default.json https://assets.digitalocean.com/articles/fluentd/default.json sudo cp default.json /usr/share/kibana-3.1.0/app/dashboards/default.json注:源文件来自这个GitHub gist。 现在到浏览器里刷新页面,应该看到Kibana现在已经根据syslog的严重等级(severity)和程序模块(facility)显示矩形图,并在一个表格里展示出最近的日志内容。 方法2:手动配置在浏览器里访问Kibana仪表盘首页:
选择最下面的Blank Dashboard: I’m comfortable configuring on my own(空白模板):
在本页面,点击右侧的+ ADD A ROW(添加行)按钮,会弹出添加新行的配置界面(一个“行”可以包含一个或多个“板块”(panel))。输入一个名称,然后点击Create Row(创建行)按钮,然后点Save(保存)。现在就可以看到新建的行了。
空白行创建后,Kibana在页面左侧会提醒Add panel to empty row(在空白行里添加板块)。点击该按钮,会弹出新建板块的配置界面。在下拉餐单中选择histogram(矩形图)。矩形图是时间图表,详见Kibana文档。
矩形图的配置涉及很多参数,不过我们可以简单的下拉到页面底部,点击Save按钮。如此,新的板块就创建完毕了。 延伸阅读 更多关于Kibana配置的信息,可参阅Kibana文档页。 本文来源自DigitalOcean Community。英文原文:Elasticsearch, Fluentd, and Kibana: Open Source Log Search and Visualization by Kiyoto Tamura |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |